package com.gee.spring.boot.oauth2.common.util.result;

/**
 * @author gee
 * @date 2020/03/09 09:54
 */
public class ResultUtil {


    /**
     * 默认的操作成功,
     * 提示信息:操作成功
     * data:null;
     * @return Result
     */
    public static Result success(){
        return new Result<>(ResultCode.SUCCESS);
    }

    /**
     *自定义提示信息的操作成功
     * 提示信息:msg
     * data:null
     * @param msg 提示信息
     * @return Result
     */
    public static Result success(String msg){
        return new Result<>(ResultCode.SUCCESS,msg);
    }

    /**
     * 默认提示信息的操作成功
     * 提示信息:操作成功
     * data:data
     * @param data  数据
     * @return Result
     */
    public static Result successWithData(Object data){
        return new Result<>(ResultCode.SUCCESS,data);
    }

    /**
     * 自定义提示信息的操作成功
     * @param  resultCode
     * @return Result
     */
    public static Result success(ResultCode resultCode){
        return new Result<>(resultCode);
    }
    /**
     * 自定义提示信息的操作成功
     * @param msg 提示信息
     * @param data 数据
     * @return Result
     */
    public static Result success(String msg, Object data){
        return new Result<>(ResultCode.SUCCESS,msg,data);
    }

    /**
     * 默认的操作失败,参照Result
     * @param resultCode 结果code
     * @return Result
     */
    public static Result error(ResultCode resultCode){
        return new Result<>(resultCode);
    }

    /**
     * 默认提示信息的操作失败
     * 提示信息:参照result
     * data:data
     * @param resultCode 结果code
     * @param data 数据
     * @return Result
     */
    public static Result error(ResultCode resultCode, Object data){
        return new Result<>(resultCode,data);
    }

    /**
     * 自定义code及msg的操作失败
     * data:null
     * @param code 结果code
     * @param msg 提示信息
     * @return Result
     */
    public static Result error(int code, String msg){
        return new Result<>(code,msg,null);
    }

    /**
     * 带参的自定义code及msg的操作失败
     * @param code 结果code
     * @param msg 提示信息
     * @param data 数据
     * @return Result
     */
    public static Result error(int code, String msg, Object data){
        return new Result<>(code,msg,data);
    }

}
